/**
 * 消息提示组件
 * 
 * 1.调用
 * 字符串类型参数： $.message('成功');
 * 对象型参数：$.message({});
 *
 * //
 // $('.btn-success').on('click',function(){
//     $.message('成功');
// });
 // $('.btn-danger').on('click',function(){
//     $.message({
//         message:'等待提示',
//         type:'waiting'
//     });
// });
 // $('.btn-warning').on('click',function(){
//     $.message({
//         message:'警告提示',
//         type:'warning'
//     });
// });
 // $('.btn-info').on('click',function(){
//     $.message({
//         message:'信息提醒',
//         type:'info'
//     });
// });
 *
 *
 * 
 * 2.参数详解
 *  message:' 操作成功',    //提示信息
    time:'2000',           //显示时间（默认：2s）
    type:'success',        //显示类型，包括4种：success.error,info,warning
    showClose:false,       //显示关闭按钮（默认：否）
    autoClose:true,        //是否自动关闭（默认：是）
 * 
 * type:success,error,info,warning
 * 本js文件，采用了RequireJS的编辑，不能直接引入
 */
define(['jquery'],function($){
    var message = function(){
        $.extend({
        message: function (options) {
            var defaults = {
                message: ' 操作成功',
                time: '3000',
                type: 'success',
                showClose: false,
                autoClose: true,
                onClose: function () {}
            };
            if (typeof options === 'string') {
                defaults.message = options;
            }
            if (typeof options === 'object') {
                defaults = $.extend({}, defaults, options);
            }
            //message模版
            var templateClose = defaults.showClose ? '<a class="c-message--close">×</a>' : '';
            var template = '<div class="c-message messageFadeInDown c-message--' + defaults.type + '"">' +
                templateClose +
                '<div class="c-message--tip">' + defaults.message + '</div>' +
                '</div>';
            var _this = this;
            var $body = $('body');
            var $message = $(template);
            var timer;
            var closeFn, removeFn;
            //关闭
            closeFn = function () {
                $message.addClass('messageFadeOutUp');
                $message.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
                    removeFn();
                });
            };
            //移除
            removeFn = function () {
                $message.remove();
                defaults.onClose(defaults);
                clearTimeout(timer);
            };
            //移除所有
            // $('.c-message').remove();
            $body.append($message);
            var $width = $(".c-message").width();
            //居中
            $message.css({
                'margin-left': '-' + $width / 2 + 'px',
                'top': $(".c-message").length * 39 + 'px'
            });
            //去除动画类
            $message.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
                $message.removeClass('messageFadeInDown');
            });
            //点击关闭
            $body.on('click', '.c-message--close', function (e) {
                closeFn();
            });
            //自动关闭
            if (defaults.autoClose) {
                timer = setTimeout(function () {
                    closeFn();
                }, defaults.time);
            }
        }
    });
    }
    return {
        message:message
    }
})
